#pragma once


#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

typedef int QDataType;

typedef struct QueNode
{
	struct QueNode* next;
	QDataType val;
}QN;

typedef struct Queue
{
	QN* head;
	QN* tail;
	int sz;
}Queue;

void Queueinit(Queue* q);

void QueueDestory(Queue* q);

bool QueueEmpty(Queue* q);

void QueuePop(Queue* q);

void QueuePush(Queue* q, QDataType x);

QDataType Queuefront(Queue* q);

QDataType Queuetail(Queue* q);

int QueueSize(Queue* q);
